#include "stdio.h"
#include "sys/types.h"
#include "unistd.h"
#include "stdlib.h"
#include "sys/wait.h"

int main(int agrc, char *argv[], char *env[]) {
    
    pid_t id = fork();
    if (id == 0) { 
        char *const my_env[] = {
            "MYENV=helloworld",
            NULL 
        };
        execle("./mycmd", "mycmd", NULL, env);
    }

    
    
    
    
    
    
    
    //execl("/usr/bin/ls", "ls", "-l", NULL);
    //pid_t id = fork();
    //if (id == 0) {
    //    printf("i am child, pid is : %d, ppid is %d\n", getpid(), getppid());
    //    //execl("/usr/bin/ls", "ls", "-l", NULL);
    //    const char *const my_argv[] = {
    //        "ls",
    //        "-l",
    //        "-a",
    //        NULL 
    //    };
    //    execv("/usr/bin/ls", my_argv);
    //    exit(1);
    //}
    //
   int status = 0;
   pid_t ret = waitpid(id, &status, 0);
   if (ret > 0) {
       printf("sig code : %d, exit code : %d\n",WIFEXITED(status), WEXITSTATUS(status));
   }else {
       printf("等待失败\n");
   }

    return 0;
}
